// @before-stub-for-debug-begin
#include "commonInc.h"
// @before-stub-for-debug-end

/*
 * @lc app=leetcode.cn id=334 lang=cpp
 *
 * [334] 递增的三元子序列
 */

// @lc code=start
class Solution {
public:
    // 判断是否存在递增的三元子序列
    bool increasingTriplet(vector<int>& nums) 
    {
        const int n=nums.size();
        // 如果元素个数小于3，直接返回false
        if(n < 3)
            return false;
        
        int first=INT_MAX,second=INT_MAX;
        // 遍历数组，寻找递增的三元子序列
        for(int i=0;i<n;++i) {
            if(nums[i] <= first) {
                first = nums[i];  // 更新最小值
            } else if(nums[i] <= second) {
                second = nums[i];  // 更新次小值
            } else {
                return true;  // 找到第三个比前两个都大的数
            }
        }
        return false;
    }
};

// @lc code=end

